Products Page

The Products page allows you to create the software products that you want to offer to the user.

 

To add a product, use the Insert New Product button. You can then edit the newly added product to enter the product information and define the licensing properties. For an application (protected by a Program ID), you can make it as many products as you want by defining different licensing properties. For instance, a product is licensed as a trial version, while another product is licensed as a full version.

 

The Define Programs/Modules/Items button allows you to open the pane (to the left) that you can edit the program, module, and item names. So you can easily refer to your programs, modules, and items by names, instead of Program IDs, Module IDs, and Item IDs. In the Products table, you can also click on a Program ID to open the pane to view or edit the program, module, and item names.

 

To view the licensing properties of a product, you can click on the MasterID and MasterLicense. The license information will be shown under the menu bar.  

 

If you distribute and deploy your application using the RKUB (Remote Key Update Broadcast) feature, you can use the Encode RKU File button to create the RKU file from the Products table.

 

The fields in the Products table can be grouped into the following categories.

Product Information

The following fields allow you to enter basic information about the product.

ProductName

Specify the product name.

ProgramID

Specify the Program ID of the application.

ProductTitle

Specify the full product title.

Master License

A pair of Master ID and Master License is the encoded Key Properties, which is used as the master license for the product. The Activation Server uses the product Master License to generate the License Key in response to the license activation request. You can generate the Master ID and Master License by using the LicenseKey Manager tool.

To Generate Master ID and Master License

1.       Run LicenseKey Manager.

2.       From the Tools menu, select Generate Master ID.

3.       In the Generate Master ID dialog box, from the Program ID drop-down list, select the Program ID of your application. Then, select the appropriate checkboxes of the flags, and click the Generate button. A Master ID is generated.

4.       Copy the Master ID. Then, go to the Main tab of the Key Properties pane. Paste the Master ID in the Registration ID field, and click the Check button.

5.       The Identification field shows the Key ID, Program ID, and flag decoded from the Master ID.

6.       From the Implementation drop-down list, select the appropriate implementation and specify the limits as you want.

7.       From the Note pane, you can enter notes about the Master ID and Master License in the Messages field.

8.       From the Main tab of the Key Properties pane, click the Generate button. The Master License is shown in the License Key field.

Licensing Properties

Besides Master ID and Master License, the following fields allow you to specify additional licensing properties.

MaxActivation

Specify the maximum number of activations allowed. If you want to provide replacement licenses to the user, set the MaxActivation more than one, and -1 is for unlimited replacement licenses. To allow unlimited activations, set the MaxActivation to -1.

DefaultSubscrpPeriod

Specify the default subscription period in days, which is used to calculate the SubscriptionExpDate field for the account subscription in the Accounts table.

ActivationPolicy

Specify the activation policy how the Activation Server responds to the license activation request. The following policies are available.

 

·         [AcceptAll] Single Machine. The single machine policy allows the Activation Server to maintain the current license status of the protected application. Specifically, when the account has the LicKeyTran sent from the application, the Activation Server will use it to generate the License Key in response to the activation request. Otherwise, it uses the MasterLicenseCust (if available) or MasterLicense respectively. 

The default [AcceptAll] policy accepts the activation request regardless of the hardware signatures. This however can allow license activation from any machine.

To add more security that subsequent activations for a replacement license must come from the same machine, you can choose one of the following options. To use this feature, you must enable the extended Registration ID format with hardware signatures in the protected application. The Activation Server will respond to the activation request by verifying first if the hardware signatures match those from the previous activation, before generating the License Key.

·         [Low] Matched Any Signatures. The Activation Server accepts the activation request if any signatures match those from the previous activation.

·         [Medium] Matched HDD or CPU/BIOS/Ethernet Signatures. The Activation Server accepts the activation request if the HDD or CPU/BIOS/Ethernet signatures match those from the previous activation.

·         [MediumHigh] Matched CPU/BIOS/Ethernet Signatures. The Activation Server accepts the activation request if the CPU/BIOS/Ethernet signatures match those from the previous activation.

·         [High] Matched HDD/CPU/BIOS/Ethernet Signatures. The Activation Server accepts the activation request if all HDD/CPU/BIOS/Ethernet signatures match those from the previous activation.

·         [SecureEvaluation] Different Hardware Signatures. The Activation Server accepts the activation request if one or more of the hardware signatures is different from those from the previous activation. In other words, the request must be from a different computer. In order to use this policy, you must protect your application using the Secure Evaluation mode. Besides, it is recommended that you enable the Ethernet signature for the extended Registration ID format since each computer typically has a unique MAC address; while it is possible that two computers might have the identical HDD/CPU/BIOS signatures.

·         [AcceptAll] Multiple Machines. In the policy for multiple machines, the Activation Server disables the ability to transfer license between the protected application and the server. Specifically, it does not maintain the current license status of the application. During the license deactivation request, the LicKeyTran sent from the application is not saved. So whenever the user activates the application, the Activation Server only uses the MasterLicenseCust (if available) or MasterLicense respectively to generate the License Key in response to the license activation request.

 

note NOTE: While the [AcceptAll] Single Machine policy can maintain the current license status of the application during license transfer, it has a side effect to time-based licensing such as subscription. Specifically, when the license is deactivated and transferred to the server, the licensing properties including time limits (e.g. day count) are preserved in the LicKeyTran.

With the Activation Server version 2.0.9.25 or later, you can additionally enable the option to maintain the integrity of time-based licensing for license transfer on the ManagedExpiration mode  by setting the TransferLicenseOnManagedExpiration with value managed in the Web.Config file. As a result, when the license is reactivated, the server will automatically adjust the time limits based on the server time.

 

ManagedExpiration

The ManagedExpiration checkbox enables the Activation Server to manage and maintain the integrity of the expiration for time-based licensing such as subscription. It applies when the Master License contains the expiration or period limit. Specifically, the Activation Server keeps track of the account activations and automatically calculates the current available MaxDayPeriod (based on the server time) when generating the License Key in response to the license activation request.

 

Here is an example how the ManagedExpiration feature works. Assume the Master License contains the period limit with MaxDayPeriod of 30 days, and you set the MaxActivation more than one to allow replacement licenses. The user first activates the license on day one. On day 10, the user activates again for a replacement license. Without ManagedExpiration, the Activation Server simply uses the Master License to generate the License Key, which results in the license with MaxDayPeriod of 30 days. When ManagedExpiration is enabled, the Activation Server uses the Master License and calculates the current available MaxDayPeriod before generating the License Key, which results in the license with MaxDayPeriod of 20 days. Accordingly, if the user activates again on day 18, the Activation Server will generate and return the license with MaxDayPeriod of 12 days.

 

The tables below summarize how the Activation Server calculates the current available MaxDayPeriod in different scenarios, in order to generate the License Key in response to the license activation request. When an account has license upgrades, the ManagedExpiration feature also applies to calculate the available MaxDayPeriod for the MasterLicenseCust, which is used to generate the License Key after the upgrade. 

 

General Scenarios

First-Time Activation

·         MaxDayPeriod = Products.MasterLicense.MaxDayPeriod

·         Generate and return License Key.

·         Action(‘Activated’), DateTime recorded in Activation Logs.

Subsequent Activations (Replacement Licenses)

·         MaxDayPeriod = Products.MasterLicense.MaxDayPeriod  (CurrentDateActivationLogs.Action(‘Activated’).DateTime)

·         Generate and return License Key.

·         Action(‘Replaced’), DateTime recorded in Activation Logs.

 

Upgrade Scenarios

First Upgrade (performed under the Control page)

·         MasterLicenseCust.MaxDayPeriod = Products.MasterLicense.MaxDayPeriod                (CurrentDateActivationLogs.Action(‘Activated’).DateTime) + Upgrades.MasterLicense.MaxDayPeriod

·         Generate MasterLicenseCust.

·         Update Acccounts.MasterLicenseCust, enable Accounts.Reactivation and increment Accounts.LicUpgradeID.

·         MasterLicenseCust, DateTime recorded in Upgrade Logs.

Reactivation for  First Upgrade and Subsequent Activations

·         MaxDayPeriod = MasterLicenseCust.MaxDayPeriod – (CurrentDateUpgradeLogs(First).DateTime)

·         Generate and return License Key.

·         Action(‘Customized’), DateTime recorded in Activation Logs.

Next Upgrade (performed under the Control page)

·         MasterLicenseCust.MaxDayPeriod = CurrentMasterLicenseCust.MaxDayPeriod                       (CurrentDateUpgradeLogs(Last).DateTime) + Upgrades.MasterLicense.MaxDayPeriod

·         Generate MasterLicenseCust.

·         Update Acccounts.MasterLicenseCust, enable Accounts.Reactivation and increment Accounts.LicUpgradeID.

·         MasterLicenseCust, DateTime recorded in Upgrade Logs.

Reactivation for Next Upgrade and Subsequent Activations

·         MaxDayPeriod = MasterLicenseCust.MaxDayPeriod – (CurrentDateUpgradeLogs(Last).DateTime)

·         Generate and return License Key.

·         Action(‘Customized’), DateTime recorded in Activation Logs.

ManagedExecution

The ManagedExecution checkbox enables the Activation Server to manage and maintain the integrity of the execution limit for usage-based licensing. It applies when the Master License contains the execution limit. Specifically, the Activation Server can keep track of the current license status of the Key on the client machine through the LicKeyTran – the License Key sent from the application during the license deactivation request. The Activation Server then extracts the current execution count and uses it to set the InitExec property when generating the License Key in response to the license activation request. The InitExec is then used by the protected application to initialize the execution count to the Key.

 

The tables below summarize how the Activation Server handles the InitExec in different scenarios, in order to generate the License Key in response to the license activation request. The InitExec can set in 3 modes: Reset, None, and the value for the execution count.

 

General Scenarios

First-Time Activation

·         InitExec = Reset Mode (reset ExecCount of the Key to 0)

·         Generate and return License Key.

·         Action(‘Activated’), DateTime recorded in Activation Logs.

Subsequent Activations (Replacement Licenses)

·         InitExec = None Mode (leave ExecCount of the Key  as is)

·         Generate and return License Key.

·         Action(‘Replaced’), DateTime recorded in Activation Logs.

NOTE: If the subsequent activation is from another machine, ExecCount will start at 0.

 

Upgrade Scenarios

First Upgrade (performed under the Control page)

·         MasterLicenseCust.MaxExec =  Products.MasterLicense.MaxExec + Upgrades.MasterLicense.MaxExec

·         Generate MasterLicenseCust.

·         Update Acccounts.MasterLicenseCust, enable Accounts.Reactivation and increment Accounts.LicUpgradeID.

·         MasterLicenseCust, DateTime recorded in Upgrade Logs.

Reactivation for  First Upgrade and Subsequent Activations

·         MaxExec = MasterLicenseCust.MaxExec

·         InitExec = ClientKey.ExecCount

·         Generate and return License Key.

·         Action(‘Customized’), DateTime recorded in Activation Logs.

Next Upgrade (performed under the Control page)

·         MasterLicenseCust.MaxExec = CurrentMasterLicenseCust.MaxExec + Upgrades.MasterLicense.MaxExec

·         Generate MasterLicenseCust.

·         Update Acccounts.MasterLicenseCust, enable Accounts.Reactivation and increment Accounts.LicUpgradeID.

·         MasterLicenseCust, DateTime recorded in Upgrade Logs.

Reactivation for Next Upgrade and Subsequent Activations

·         MaxExec = MasterLicenseCust.MaxExec

·         InitExec = ClientKey.ExecCount

·         Generate and return License Key.

·         Action(‘Customized’), DateTime recorded in Activation Logs.

 

note NOTE: The ManagedExpiration and ManagedExecution features should be used when you create the upgrades through the Upgrades page, instead of specifying the MasterLicenseCust directly in the Accounts page.

 

note NOTE: When using the ManagedExpiration and ManagedExecution features, the Master License for the upgrades must have the Add to existing Limit option enabled. The Activation Server will upgrade the license, and manage the expiration and execution as described above. After the upgrade, the MasterLicenseCust will clear the Add to existing Limit option. As a result, Key Properties from the MasterLicenseCust will be updated (but not added) to the Key on the user machine.

 

note NOTE: The ManagedExecution feature is not backward compatible with older ElecKey versions. For more details, see Appendix: ManagedExecution in Activation Server and Compatibility.

RKUAttribute

Specify the RKU attributes of the product for the RKU file. If you want to deploy the Remote Key Update Broadcast (RKUB) feature, you can use the Encode RKU File button to generate the RKU file.

NonTransferable

The NonTransferable checkbox allows you to disable the ability to transfer license between the protected application and the server, in case it is not needed. By default, during the license deactivation request, the Activation Server maintains the current license status by saving the LicKeyTran sent from the application. When the NonTransferable checkbox is enabled, the LicKeyTran is not saved. So whenever the user activates the application, the Activation Server only uses the MasterLicenseCust (if available) or MasterLicense respectively to generate the License Key in response to the license activation request.

License Delivery

The following fields allow you to specify the settings for delivering the product license to the user.

EmailTemplateFolder

Specify the folder that contains the email template files (EmailBody.txt and EmailSubject.txt). If not specified, the Activation Server will use the default email template files in its main folder.

ProductURL

Specify the download URL of the product, to be shown under the <ProductURL> tag in the email template. Besides, the field can also be used for other purposes to show the specified value in the license delivery email.

ProductUpgradeURL

Specify the upgrade URL of the product (e.g. https://demo.eleckey.net/ PayPal_Upgrade.aspx). The field is returned as the ProductUpgradeURL property when using the GetProductStatus web service method to query the Activation Server.

 

See https://demo.eleckey.net/registration_activation.aspx for a usage example. Under the Upgrade section, the web page uses the GetProductStatus web service method (with the Activation Key provided by the user) to check for the current product license and display the upgrade URL as inline frame.

Ecommerce Interface

The following ecommerce product ID fields are used for interfacing with ecommerce providers. In the provided Activation Server, EcommerceProdID1 and EcommerceProdID2 are assigned to interface with Share-it! and PayPal, respectively. EcommerceProdID3 and EcommerceProdID4 are not assigned, and you can use them to interface with other ecommerce providers.

EcommerceProdID1

Specify a product ID that matches the one used in your Share-it! order processing system (implemented in the file ShareIt_KeyGen.aspx).

EcommerceProdID2

Specify a product ID that matches the one used in your PayPal payment gateway system (implemented in the file PayPal_KeyGen.aspx).

 

See Also

·         Upgrades Page

·         Accounts Page

·         Control Page

·         History Page

·         Permissions Page